List, Set, Map 教程

1. 概述

在 Kotlin 中,List、Set 和 Map 是三种常用的集合类型。它们分别用于存储有序的元素集合、无序且不重复的元素集合以及键值对的集合。理解这些集合类型的特性和用法,对于编写高效且易于维护的代码至关重要。

2. List

2.1 理论解释

List 是一种有序的集合,允许存储重复的元素。Kotlin 提供了两种类型的 List:

  • 不可变 List:一旦创建,就不能修改。
  • 可变 List:可以添加、删除或修改元素。

2.2 代码示例

// 不可变 List
val immutableList: List<Int> = listOf(1, 2, 3, 4, 5)
println(immutableList)  // 输出: [1, 2, 3, 4, 5]

// 可变 List
val mutableList: MutableList<Int> = mutableListOf(1, 2, 3)
mutableList.add(4)
mutableList.remove(2)
println(mutableList)  // 输出: [1, 3, 4]

2.3 实践练习

创建一个可变 List,添加几个元素,然后删除其中的一个元素,最后打印出结果。

3. Set

3.1 理论解释

Set 是一种无序的集合,不允许存储重复的元素。Kotlin 也提供了两种类型的 Set:

  • 不可变 Set:一旦创建,就不能修改。
  • 可变 Set:可以添加或删除元素。

3.2 代码示例

// 不可变 Set
val immutableSet: Set<Int> = setOf(1, 2, 3, 3, 4)
println(immutableSet)  // 输出: [1, 2, 3, 4]

// 可变 Set
val mutableSet: MutableSet<Int> = mutableSetOf(1, 2, 3)
mutableSet.add(4)
mutableSet.remove(2)
println(mutableSet)  // 输出: [1, 3, 4]

3.3 实践练习

创建一个可变 Set,添加几个元素,然后删除其中的一个元素,最后打印出结果。

4. Map

4.1 理论解释

Map 是一种键值对的集合,键是唯一的,值可以重复。Kotlin 同样提供了两种类型的 Map:

  • 不可变 Map:一旦创建,就不能修改。
  • 可变 Map:可以添加、删除或修改键值对。

4.2 代码示例

// 不可变 Map
val immutableMap: Map<String, Int> = mapOf("one" to 1, "two" to 2, "three" to 3)
println(immutableMap)  // 输出: {one=1, two=2, three=3}

// 可变 Map
val mutableMap: MutableMap<String, Int> = mutableMapOf("one" to 1, "two" to 2)
mutableMap["three"] = 3
mutableMap.remove("two")
println(mutableMap)  // 输出: {one=1, three=3}

4.3 实践练习

创建一个可变 Map,添加几个键值对,然后删除其中的一个键值对,最后打印出结果。

5. 集合操作

5.1 理论解释

Kotlin 提供了丰富的集合操作函数,如 filter、map、reduce 等,这些函数可以帮助你高效地处理集合数据。

5.2 代码示例

val numbers = listOf(1, 2, 3, 4, 5)

// 过滤出偶数
val evenNumbers = numbers.filter { it % 2 == 0 }
println(evenNumbers)  // 输出: [2, 4]

// 将每个元素乘以 2
val doubledNumbers = numbers.map { it * 2 }
println(doubledNumbers)  // 输出: [2, 4, 6, 8, 10]

// 求和
val sum = numbers.reduce { acc, i -> acc + i }
println(sum)  // 输出: 15

5.3 实践练习

使用 filter、map 和 reduce 操作一个 List,实现以下功能:

  1. 过滤出大于 3 的元素。
  2. 将每个元素乘以 3。
  3. 求所有元素的和。

6. 总结

通过本教程,你应该已经掌握了 Kotlin 中 List、Set 和 Map 的基本用法,以及如何使用集合操作函数来处理集合数据。这些知识将帮助你在实际编程中更高效地管理和操作数据。

7. 下一步

接下来,你可以继续学习 Kotlin 中的其他高级特性,如 Sequence、不可变性、纯函数 等,这些内容将进一步增强你对 Kotlin 的理解和应用能力。